<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>外观模式：</title>
</head>

<body>
  <script>
    // 就像闭包
    function Emp(name) {
      let _n = name;
      // this._n = name;
      function _getName() {
        return _n;
      }

      function _setName(v) {
        _n = v;
      }

      // 一个构造函数，new运算符执行时，返回的对象，可以时return指定的对象。如果没有return ,则是直接实例化一个对象
      return { getName: _getName, setName: _setName }
    }

    Emp.prototype.name = "aaA"

    let p1 = new Emp('曾庆梅')
    console.log(p1);
    console.log(p1.name); //undefined,返回的对象，不是实例化对象
    console.log(p1.getName()); //曾庆梅
    console.log(p1.setName('白聪伟'));
    console.log(p1.getName()); //白聪伟

  </script>

</body>

</html>